#include <stdio.h>
#define MaxSize  100
typedef int DateType;
typedef struct
{
    DateType list[MaxSize];
    int size;
}SeqList;
void ListInitiate(SeqList *L)
{
L->size = 0;
}
int ListLength(SeqList L){
    return L.size;
}
int ListInsert(SeqList *L,int i,DateType x)
{
    int j;
    if (L->size >= MaxSize)
    {
        printf("顺序表已满无法插入！ \n");
        return 0;
    } else
        if (i<0||i>L->size){
            printf("参数i不合法! \n");
            return 0;
        } else{
            for (j = L->size; j>i; j--)
                L->list[j] = L->list[j];
            L->list[i]=x;
            L->size ++;
            return 1;
        }

}
    int ListDelete (SeqList *L,int i,DateType *x)
    {
    int j;
    if (L->size <= 0)
    {
        printf("顺序表已空无数据可删！\n");
        return 0;
    } else if (i <0 || i > L ->size-1)
    {
        printf("参数i不合法");
        return 0;
    } else{
        *x = L->list[i];
        for (j = i + 1;j <= L->size-1;j++) L->list[j] = L->list[j+1];
        L->size--;
        return 1;
          }

    }
    int ListGet (SeqList L, int i,DateType *x)
    {
    if (i < 0 || i> L.size-1)
    {
        printf("参数i不合法！\n");
        return 0;
    } else{
        *x = L.list[i];
        return 1;
          }
    }
    int ListSearch(SeqList L,DateType x){
    int k = -1;
    for (int i = 0; i < L.size;i++){
        if (L.list[i] == x )
            k=i;
    }
        return k;
}
    int main (int argc,char * argv[]) {
        SeqList myList;
        int i, x;
        ListInitiate(&myList);
        for (i = 0; i < 10; i++)
            ListInsert(&myList, i, i + 1);
        ListDelete(&myList, 4, &x);
        for (int i = 0; i < ListLength(myList); i++) {
            ListGet(myList, i, &x);
            printf("%d", x);
        }
        printf("\n%d\n", ListSearch(myList,9));
        printf("%d\n", ListSearch(myList,11));
        return 0;
    }
